package com.luoke.service.request;

import com.luoke.connect.GameWebSocketClient;
import com.luoke.pojo.dto.BagDTO;
import com.luoke.pojo.dto.BattleRoundDTO;
import com.luoke.pojo.entity.BattlePet;
import com.luoke.pojo.entity.Skill;

import java.util.Scanner;

public interface BattleRequestService {

    /**
     * 向用户发起对战
     * @param gameWebSocketClient 使用该对象与服务端通信
     * @param scanner 输入流
     */
    void startPvpBattle(GameWebSocketClient gameWebSocketClient, Scanner scanner);

    /**
     * 发送请求，使服务器标志该用户为等待状态
     * @param gameWebSocketClient 使用该对象与服务端通信
     * @param scanner 输入流
     */
    void userToWait(GameWebSocketClient gameWebSocketClient, Scanner scanner);

    /**
     * 向服务端发起匹配对战请求
     * 其实就是向服务端中在等待区的玩家中进行随机匹配
     * @param gameWebSocketClient 使用该对象与服务端通信
     * @param scanner 输入流
     */
    void matchBattle(GameWebSocketClient gameWebSocketClient, Scanner scanner);


    void doRound(GameWebSocketClient gameWebSocketClient, String other);

    void useBag(GameWebSocketClient gameWebSocketClient, String toUser, BagDTO bagDTO);

    void changePet(GameWebSocketClient gameWebSocketClient, String toUser, BattlePet battlePet);

    void useSkill(GameWebSocketClient gameWebSocketClient, Skill skill);
}
